package com.zb777.shuzhilingxi.utils;

import dev.langchain4j.community.model.dashscope.QwenChatModel;
import dev.langchain4j.data.message.UserMessage;
import dev.langchain4j.model.chat.response.ChatResponse;
import org.springframework.context.annotation.Configuration;

import java.util.Base64;
@Configuration
public class QwenvlConfig {
    public ChatResponse qwenvl(String base64Data, String question) {

        // 初始化模型，指定qwen-vl-plus及API密钥
        QwenChatModel model = QwenChatModel.builder()
                .apiKey(System.getenv("DASH_SCOPE_API_KEY")) // 替换为实际API密钥
                .modelName("qwen-vl-plus") // 模型名称固定为qwen-vl-plus
                .temperature(0.7F)
               // 可调整生成温度
                .build();
        // 去除 Base64 数据的前缀（如果有）
        if (base64Data.startsWith("data:")) {
            int commaIndex = base64Data.indexOf(",");
            if (commaIndex != -1) {
                base64Data = base64Data.substring(commaIndex + 1);
            }
        }

        // 构造包含图像的用户消息（图像需转为Base64编码）
        String imageBase64 = ""; // 需提前将图像转为Base64
        UserMessage message = UserMessage.from(
                question,
               base64Data// 传入图像Base64
        );

        // 调用模型并获取响应
        return model.chat(message);
    }
}